Visualize Latest Observations from the Ambient Weather Stations#

Imports#

import glob
import xarray as xr
from bokeh.models.formatters import DatetimeTickFormatter
import hvplot.xarray
import holoviews as hv
from distributed import Client
import warnings

warnings.filterwarnings("ignore")
hv.extension('bokeh')

Start up a Dask Cluster#

client = Client()
client
/Users/mgrover/miniforge3/envs/pyart-dev/lib/python3.10/site-packages/distributed/node.py:182: UserWarning: Port 8787 is already in use.
Perhaps you already have a cluster running?
Hosting the HTTP server on port 62193 instead
  warnings.warn(

Client

Client-a9c70a40-ca67-11ed-a465-520a01803a93

Connection method: Cluster object Cluster type: distributed.LocalCluster
Dashboard: http://127.0.0.1:62193/status

Cluster Info

Read the Sorted Data, Using the Last File#

files = sorted(glob.glob('../../data/surface-meteorology/*/*/*/*.nc'))

ds = xr.open_mfdataset(files[-60:])
/Users/mgrover/miniforge3/envs/pyart-dev/lib/python3.10/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
  from .autonotebook import tqdm as notebook_tqdm

Plot the Data#

formatter = DatetimeTickFormatter(hours="%d %b %Y \n %H:%M UTC")

variables = ['outdoor_temperature', 'outdoor_dewpoint', 'hourlyrainin', 'solarradiation']

panels = []
for variable in variables:
    panels.append(ds[variable].hvplot.line(x='time', by='station', xformatter=formatter))
hv.Layout(panels).cols(1)